package com.nari.ncps.screen.service.electric;

import com.baomidou.mybatisplus.extension.service.IService;
import com.nari.ncps.screen.entity.electric.ElectricSafetyenvPollutant;
import com.nari.ncps.screen.vo.electric.MonthlyEmissionStatistics;
import com.nari.ncps.screen.vo.electric.MonthlyReductionStatistics;

import java.util.List;

/**
 * <p>
 * 火电安全环保污染物表 服务类
 * </p>
 *
 * @author xuesong
 * @since 2025-09-24
 */
public interface ElectricSafetyenvPollutantService extends IService<ElectricSafetyenvPollutant> {

    /**
     * 根据年份查询污染物排放数据
     * @param year 年份
     * @return 污染物排放数据列表
     */
    List<ElectricSafetyenvPollutant> getByYear(Integer year);

    /**
     * 根据年份和月份查询污染物排放数据
     * @param year 年份
     * @param month 月份
     * @return 污染物排放数据列表
     */
    List<ElectricSafetyenvPollutant> getByYearAndMonth(Integer year, Integer month);

    /**
     * 统计年度污染物排放总量
     * @param year 年份
     * @return 污染物排放统计数据
     */
    ElectricSafetyenvPollutant getYearlyStatistics(Integer year);

    /**
     * 获取污染物排放趋势数据（按月份）
     * @param year 年份
     * @return 月度排放趋势数据
     */
    List<ElectricSafetyenvPollutant> getMonthlyTrend(Integer year);

    /**
     * 计算年度减排效益
     * @param year 年份
     * @return 年度减排效益数据
     */
    ElectricSafetyenvPollutant getYearlyReductionBenefit(Integer year);

    /**
     * 获取最近6个月的污染物排放统计数据
     * @param year 年份（选填，不传则自动计算最近6个月）
     * @return 最近6个月的月度排放统计数据列表
     */
    List<MonthlyEmissionStatistics> getRecentSixMonthsEmission(Integer year);

    /**
     * 获取指定年份的月度减排统计数据
     * @param year 年份
     * @return 月度减排统计数据列表
     */
    List<MonthlyReductionStatistics> getMonthlyReductionStatistics(Integer year);
}
